package org.holoeverywhere.app;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.acra.collector.CrashReportData;
import org.acra.sender.ReportSender;
import org.acra.sender.ReportSenderException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import android.os.StrictMode;
import android.util.Log;
public class HockeySender implements ReportSender {
// public String BASE_URL = "https://rink.hockeyapp.net/api/2/apps/";
private static String CRASHES_PATH = "/crashes";
public static final int HTTP_TIMEOUT = 30 * 1000;
String url;
public HockeySender(String envio) {
url = envio;
}
@Override
public void send(CrashReportData report) throws ReportSenderException {
try {
System.setProperty("http.keepAlive", "false");
HttpClient httpclient = new DefaultHttpClient();
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
final HttpParams par = httpclient.getParams();
HttpConnectionParams.setConnectionTimeout(par, HTTP_TIMEOUT);
HttpConnectionParams.setSoTimeout(par, HTTP_TIMEOUT);
ConnManagerParams.setTimeout(par, HTTP_TIMEOUT);
HttpPost httppost;
BeanDatosLog bean=new BeanDatosLog();
try{
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log=new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
// Log.d("******sdfwds", log+"");
httppost = new HttpPost(url);
MultipartEntity entity = new MultipartEntity();
entity.addPart("modelo", new StringBody(bean.getMarcaCel()+""));
entity.addPart("version", new StringBody(bean.getVersionAndroid() + ""));
entity.addPart("tag",new StringBody(bean.getTagLog() + ""));
entity.addPart("descripcion", new StringBody(log.toString() + ""));
Log.d("******sdfwds", "enviado");
System.setProperty("http.keepAlive", "false");
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);
}
catch (Exception e) {
e.printStackTrace();
}
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* metodo que hace la conexion al servidor con una url especifica
* @param url(String) ruta del web service
* @return (String) resultado del service
*/
public static String doHttpConnection(String url) {
HttpClient Client = new DefaultHttpClient();
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
HttpGet httpget = new HttpGet(url);
HttpResponse hhrpResponse = Client.execute(httpget);
HttpEntity httpentiti = hhrpResponse.getEntity();
//Log.d("RETURN HTTPCLIENT", EntityUtils.toString(httpentiti));
return EntityUtils.toString(httpentiti);
} catch (ParseException e) {
Log.d("Error ParseEception", e.getMessage() + "");
return null;
} catch (IOException e) {
Log.d("Error IOException", e.getMessage() + "");
return null;
}
}
}